import pymysql
import datetime
from string import Template

def init():
    global dbconfig
    dbconfig = {
        'HOST': '172.17.0.3',
        'USER': 'root',
        'PASS': '123456',
        'NAME': 'pypy',
    }
    # 检查数据库状态
    # 打开数据库连接
    db = pymysql.connect(dbconfig['HOST'],
        dbconfig['USER'],
        dbconfig['PASS'],
        dbconfig['NAME'])
    # 使用 cursor() 方法创建一个游标对象 cursor
    cursor = db.cursor()
    # 使用 execute()  方法执行 SQL 查询 
    cursor.execute("SELECT VERSION()")
    # 使用 fetchone() 方法获取单条数据.
    data = cursor.fetchone()
    print ("Database version : %s " % data)
    # 关闭数据库连接
    db.close()

def insert(l):
    global dbconfig
    db = pymysql.connect(dbconfig['HOST'],
        dbconfig['USER'],
        dbconfig['PASS'],
        dbconfig['NAME'])
    cursor = db.cursor()
    sqlT = Template("""INSERT INTO news_aggregation_newsagg(
title, sub_title, category, author, source,
summary, image_url, content_url,
create_time, update_time
) VALUES(
'${t}', '${st}', '${c}', '${a}', '${s}',
'${sm}', '${iu}', '${cu}',
'${ct}', '${ut}'
);""")
    t = datetime.datetime.strftime(datetime.datetime.now(), '%Y-%m-%d %H:%M:%S')
    try:
        # 执行sql语句
        for item in l:
            item.setdefault('title', 'test')
            item.setdefault('sub_title', 'test')
            item.setdefault('category', '测试')
            item.setdefault('author', 'test')
            item.setdefault('source', 'test')
            item.setdefault('summary', 'test')
            item.setdefault('image_url', '')
            item.setdefault('content_url', '')
            item.setdefault('create_time', t) # 资讯发布时间
            item.setdefault('update_time', t) # 收集入库时间
            sql = sqlT.substitute(t=item['title'],
                st=item['sub_title'],
                c=item['category'],
                a=item['author'],
                s=item['source'],
                sm=item['summary'],
                iu=item['image_url'],
                cu=item['content_url'],
                ct=item['create_time'],
                ut=item['update_time'],
            )
            # print(sql)
            cursor.execute(sql)
        # 提交到数据库执行
        db.commit()
    except:
        # 如果发生错误则回滚
        db.rollback()
    db.close()
